#!/bin/bash
#function extract common file formats 

   if [ -z "$1" ]; then
	# display usage if no parameters given 
	echo "Usage: extract <path/filename>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
   
   elif [ -f "$1" ] ; then 
       mkdir $(1%.*)	
        case "$1" in 
             	*.tar.bz2) 	tar xvjf ../"$1" ;;
	     	*.tar.gz) 	tar xvzf ../"$1" ;;		
		*.tar.xz) 	tar xvJf ../"$1" ;;
	     	*.lzma.gz) 	unlzma ../"$1" ;;		
	     	*.bz2.gz) 	tar xvzf ../"$1" ;;		
		*.bz2) 		bunzip2 ../"$1" ;;
		*.rar) 		unrar x -ad ../"$1" ;;
		*.gz) 		gunzip ../"$1" ;;
		*.tar) 		tar xvf ../"$1" ;;
		*.tbz2) 	tar xvjf ../"$1" ;;
		*.tgz) 		tar xvzf ../"$1" ;;
		*.zip) 		unzip ../"$1" ;;
		*.Z) 		uncompress ../"$1" ;;
		*.7z) 		7z x ../"$1" ;;
		*.xz) 		unxz ../"$1" ;;
		*.exe) 		cabextract ../"$1" ;;
		*)		echo "extract: '$1' - unknown archive method" ;;
	esac
    else
	echo "'$1' - file does not exist" 
    fi
exit 0
